﻿using MCPlatform.MotionLib.Base.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MCPlatform.MotionLib.Base
{
    public interface IValve
    {
        public string ValveName { get; set; }
        public int BaseTimeout { get; set; }

        public int WorkTimeout { get; set; }

        public bool BaseIn { get; set; }

        public bool WorkIn { get; set; }

        public bool BaseOut { get; set; }

        public bool WorkOut { get; set; }

        public ushort BaseInAddress { get; set; }

        public ushort WorkInAddress { get; set; }

        public ushort BaseOutAddress { get; set; }

        public ushort WorkOutAddress { get; set; }

        public ValveParaModel ValveConfig { get; set; }

        public Task<bool> BasingAsync(int timeOut = 0);

        public Task<bool> WorkingAsync(int timeOut = 0);

       
    }
}
